/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ru.jSkyRoom.interfaces.major;

import ru.jSkyRoom.interfaces.sub.JSkyLeveledEntry;
import java.util.Collection;
import java.util.List;
import skyproc.LeveledRecord;
import skyproc.exceptions.BadParameter;

/**
 *
 * @author Rakev
 */
public interface Leveled extends Major, Iterable<JSkyLeveledEntry> {

    public Collection<JSkyLeveledEntry> getEntries();

    /**
     *
     * @return Возвращает все JSkyLeveledEntry. Если JSkyLeveledEntry указывает
     * на другой Leveled, то для него вызывается getLookedDownEntries(), и
     * вместо него добавляется результат вызова.
     */
    public Collection<JSkyLeveledEntry> getRecursivelyEntries();

    public void addEntry(JSkyLeveledEntry entry);

    public void removeEntry(JSkyLeveledEntry entry);

    public float getChanceNone();

    public void setChanceNone(float chance);

    public boolean getFlag(LeveledRecord.LVLFlag flag);

    public void setFlag(LeveledRecord.LVLFlag flag);

    public void unsetFlag(LeveledRecord.LVLFlag flag);
}
